#pragma once

#include <iostream>
#include <sys/socket.h>

enum ExitCode{
    OK = 0,
    USAGE_ERR,       // 命令行参数使用错误（如传入参数个数不对）
    SOCKET_ERR,      // Socket 创建失败（如 socket() 调用返回 -1）
    BIND_ERR,        // 端口绑定失败（如 bind() 调用返回 -1）
    LISTEN_ERR,      // 监听失败（如 listen() 调用返回 -1）
    CONNECT_ERR,     // 连接失败（如客户端 connect() 调用返回 -1）
    FORK_ERR 
};

class Nocopy{
    public:
    Nocopy(){}
    ~Nocopy(){}
    Nocopy(const Nocopy& a) = delete;
    const Nocopy& operator=(const Nocopy& a) = delete;

};
// 宏定义：将 sockaddr_in* 转换为 sockaddr*（系统 Socket 函数的通用要求）
#define CONV(addr) ((struct sockaddr*)&addr)
